-
Notifications
You must be signed in to change notification settings - Fork 290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor of the PropagationModule and removal of WebModule #6033
Merged
manuel-alvarez-alvarez
merged 1 commit into
master
from
malvarez/iast-taint-api-refactor
Oct 27, 2023
Merged
Refactor of the PropagationModule and removal of WebModule #6033
manuel-alvarez-alvarez
merged 1 commit into
master
from
malvarez/iast-taint-api-refactor
Oct 27, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
manuel-alvarez-alvarez
added
type: refactoring
comp: asm iast
Application Security Management (IAST)
labels
Oct 11, 2023
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 54 cases. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.032 s) : 0, 1031748
Total [baseline] (8.759 s) : 0, 8759255
Agent [candidate] (1.027 s) : 0, 1026874
Total [candidate] (8.764 s) : 0, 8763927
section iast
Agent [baseline] (1.171 s) : 0, 1171310
Total [baseline] (9.349 s) : 0, 9348814
Agent [candidate] (1.155 s) : 0, 1154731
Total [candidate] (9.271 s) : 0, 9270759
section iast_TELEMETRY_OFF
Agent [baseline] (1.143 s) : 0, 1143493
Total [baseline] (9.312 s) : 0, 9312482
Agent [candidate] (1.147 s) : 0, 1147284
Total [candidate] (9.246 s) : 0, 9245937
gantt
title insecure-bank - break down per module: candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (645.19 ms) : 0, 645190
BytebuddyAgent [candidate] (642.159 ms) : 0, 642159
GlobalTracer [baseline] (295.556 ms) : 0, 295556
GlobalTracer [candidate] (294.505 ms) : 0, 294505
AppSec [baseline] (49.647 ms) : 0, 49647
AppSec [candidate] (48.964 ms) : 0, 48964
Remote Config [baseline] (683.009 µs) : 0, 683
Remote Config [candidate] (677.767 µs) : 0, 678
Telemetry [baseline] (6.146 ms) : 0, 6146
Telemetry [candidate] (6.058 ms) : 0, 6058
section iast
BytebuddyAgent [baseline] (785.25 ms) : 0, 785250
BytebuddyAgent [candidate] (773.117 ms) : 0, 773117
GlobalTracer [baseline] (277.418 ms) : 0, 277418
GlobalTracer [candidate] (274.07 ms) : 0, 274070
AppSec [baseline] (48.892 ms) : 0, 48892
AppSec [candidate] (46.311 ms) : 0, 46311
Remote Config [baseline] (1.247 ms) : 0, 1247
Remote Config [candidate] (578.151 µs) : 0, 578
Telemetry [baseline] (8.238 ms) : 0, 8238
Telemetry [candidate] (11.272 ms) : 0, 11272
IAST [baseline] (15.406 ms) : 0, 15406
IAST [candidate] (14.954 ms) : 0, 14954
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (763.725 ms) : 0, 763725
BytebuddyAgent [candidate] (766.779 ms) : 0, 766779
GlobalTracer [baseline] (273.667 ms) : 0, 273667
GlobalTracer [candidate] (274.258 ms) : 0, 274258
AppSec [baseline] (46.74 ms) : 0, 46740
AppSec [candidate] (46.287 ms) : 0, 46287
Remote Config [baseline] (582.785 µs) : 0, 583
Remote Config [candidate] (607.005 µs) : 0, 607
Telemetry [baseline] (6.796 ms) : 0, 6796
Telemetry [candidate] (9.01 ms) : 0, 9010
IAST [baseline] (17.649 ms) : 0, 17649
IAST [candidate] (15.876 ms) : 0, 15876
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.027 s) : 0, 1027447
Total [baseline] (9.348 s) : 0, 9347892
Agent [candidate] (1.033 s) : 0, 1032660
Total [candidate] (9.326 s) : 0, 9326114
section appsec
Agent [baseline] (1.121 s) : 0, 1121300
Total [baseline] (9.389 s) : 0, 9388998
Agent [candidate] (1.114 s) : 0, 1114184
Total [candidate] (9.355 s) : 0, 9354766
section iast
Agent [baseline] (1.159 s) : 0, 1158952
Total [baseline] (9.517 s) : 0, 9516657
Agent [candidate] (1.152 s) : 0, 1151679
Total [candidate] (9.511 s) : 0, 9510660
section profiling
Agent [baseline] (1.209 s) : 0, 1208580
Total [baseline] (9.589 s) : 0, 9588982
Agent [candidate] (1.217 s) : 0, 1216876
Total [candidate] (9.576 s) : 0, 9575790
gantt
title petclinic - break down per module: candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (642.296 ms) : 0, 642296
BytebuddyAgent [candidate] (646.206 ms) : 0, 646206
GlobalTracer [baseline] (294.646 ms) : 0, 294646
GlobalTracer [candidate] (295.76 ms) : 0, 295760
AppSec [baseline] (49.208 ms) : 0, 49208
AppSec [candidate] (49.209 ms) : 0, 49209
Remote Config [baseline] (680.815 µs) : 0, 681
Remote Config [candidate] (697.338 µs) : 0, 697
Telemetry [baseline] (6.105 ms) : 0, 6105
Telemetry [candidate] (6.161 ms) : 0, 6161
section appsec
BytebuddyAgent [baseline] (645.984 ms) : 0, 645984
BytebuddyAgent [candidate] (642.272 ms) : 0, 642272
GlobalTracer [baseline] (295.352 ms) : 0, 295352
GlobalTracer [candidate] (293.272 ms) : 0, 293272
AppSec [baseline] (139.032 ms) : 0, 139032
AppSec [candidate] (138.026 ms) : 0, 138026
Remote Config [baseline] (643.199 µs) : 0, 643
Remote Config [candidate] (638.492 µs) : 0, 638
Telemetry [baseline] (5.751 ms) : 0, 5751
Telemetry [candidate] (5.704 ms) : 0, 5704
section iast
BytebuddyAgent [baseline] (777.439 ms) : 0, 777439
BytebuddyAgent [candidate] (771.787 ms) : 0, 771787
GlobalTracer [baseline] (275.153 ms) : 0, 275153
GlobalTracer [candidate] (273.491 ms) : 0, 273491
AppSec [baseline] (46.694 ms) : 0, 46694
AppSec [candidate] (47.134 ms) : 0, 47134
Remote Config [baseline] (1.244 ms) : 0, 1244
Remote Config [candidate] (579.982 µs) : 0, 580
Telemetry [baseline] (6.946 ms) : 0, 6946
Telemetry [candidate] (7.524 ms) : 0, 7524
IAST [baseline] (16.794 ms) : 0, 16794
IAST [candidate] (16.831 ms) : 0, 16831
section profiling
BytebuddyAgent [baseline] (657.163 ms) : 0, 657163
BytebuddyAgent [candidate] (662.71 ms) : 0, 662710
GlobalTracer [baseline] (359.635 ms) : 0, 359635
GlobalTracer [candidate] (362.227 ms) : 0, 362227
AppSec [baseline] (50.321 ms) : 0, 50321
AppSec [candidate] (49.8 ms) : 0, 49800
Remote Config [baseline] (647.036 µs) : 0, 647
Remote Config [candidate] (659.882 µs) : 0, 660
Telemetry [baseline] (6.042 ms) : 0, 6042
Telemetry [candidate] (6.168 ms) : 0, 6168
ProfilingAgent [baseline] (81.015 ms) : 0, 81015
ProfilingAgent [candidate] (81.204 ms) : 0, 81204
Profiling [baseline] (81.041 ms) : 0, 81041
Profiling [candidate] (81.23 ms) : 0, 81230
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 22 cases. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section baseline
no_agent (360.147 µs) : 339, 381
. : milestone, 360,
iast (471.176 µs) : 450, 492
. : milestone, 471,
iast_FULL (528.003 µs) : 507, 549
. : milestone, 528,
iast_INACTIVE (430.327 µs) : 409, 451
. : milestone, 430,
iast_TELEMETRY_OFF (461.486 µs) : 440, 483
. : milestone, 461,
tracing (430.152 µs) : 409, 451
. : milestone, 430,
section candidate
no_agent (363.093 µs) : 342, 384
. : milestone, 363,
iast (461.19 µs) : 441, 482
. : milestone, 461,
iast_FULL (526.994 µs) : 506, 548
. : milestone, 527,
iast_INACTIVE (431.855 µs) : 410, 454
. : milestone, 432,
iast_TELEMETRY_OFF (463.163 µs) : 442, 485
. : milestone, 463,
tracing (431.538 µs) : 411, 452
. : milestone, 432,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.23.0-SNAPSHOT~072e68a521, baseline=1.23.0-SNAPSHOT~a012761e16
dateFormat X
axisFormat %s
section baseline
no_agent (1.348 ms) : 1329, 1367
. : milestone, 1348,
appsec (1.713 ms) : 1689, 1738
. : milestone, 1713,
iast (1.448 ms) : 1424, 1472
. : milestone, 1448,
profiling (1.451 ms) : 1426, 1475
. : milestone, 1451,
tracing (1.461 ms) : 1436, 1486
. : milestone, 1461,
section candidate
no_agent (1.369 ms) : 1349, 1388
. : milestone, 1369,
appsec (1.685 ms) : 1661, 1710
. : milestone, 1685,
iast (1.457 ms) : 1433, 1481
. : milestone, 1457,
profiling (1.497 ms) : 1472, 1523
. : milestone, 1497,
tracing (1.457 ms) : 1432, 1482
. : milestone, 1457,
|
smola
approved these changes
Oct 16, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
3 times, most recently
from
October 22, 2023 20:27
0efacb4
to
995f5c4
Compare
manuel-alvarez-alvarez
added
run-tests: all
Run all tests
tag: no release notes
Changes to exclude from release notes
labels
Oct 23, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
from
October 23, 2023 09:20
03bcf09
to
333c7a8
Compare
smola
approved these changes
Oct 23, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
from
October 23, 2023 16:06
333c7a8
to
9f8489a
Compare
jandro996
approved these changes
Oct 24, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
from
October 24, 2023 09:18
9f8489a
to
29e3032
Compare
DDJavierSantos
approved these changes
Oct 25, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
4 times, most recently
from
October 25, 2023 15:24
2116662
to
469769d
Compare
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
from
October 26, 2023 09:58
469769d
to
e52e4ee
Compare
smola
approved these changes
Oct 26, 2023
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
2 times, most recently
from
October 27, 2023 08:32
547364a
to
3a6030d
Compare
manuel-alvarez-alvarez
force-pushed
the
malvarez/iast-taint-api-refactor
branch
from
October 27, 2023 08:50
3a6030d
to
072e68a
Compare
jandro996
pushed a commit
that referenced
this pull request
Oct 27, 2023
jandro996
pushed a commit
that referenced
this pull request
Oct 30, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
comp: asm iast
Application Security Management (IAST)
run-tests: all
Run all tests
tag: no release notes
Changes to exclude from release notes
type: refactoring
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What Does This Do
Refactoring of the tainting API by moving all tainting operations to the
PropagationModule
with methods according to:taint
methods are used to taint values :taint(context?, target, source_attributes+)
taintIfTainted
methods are used to taint values only if the input is tainted :taintIfTainted(context?, target, input, source_attributes+)
taintIfAnyTainted
methods are used to taint values only if any of the inputs is tainted :taintIfAnyTainted(context?, target, input[], source_attributes+)
Motivation
Both modules
WebModule
andPropagationModule
have grown organically bringing a lot of duplication, this PR tries to merge all tainting operations providing a cohesive API.Additional Notes
This PR is quite big but it does not introduce any new functionality, just a reorganization of the tainting API.
Jira ticket: APPSEC-10454